! function () {
    'use strict';

    // 主体函数
    function Main() {
        this.fns = {
            // enter
            enter: new Function,
            // ctrl + enter
            ctrlEnter: new Function,
            // ctrl + v
            //ctrlV: new Function,
        };
    }



    // 初始化
    Main.prototype.init = function (dom) {
        var self = this;

        // 全局监听
        (dom || document).addEventListener('keydown', function (e) {
            var keyCode = e.keyCode || e.which || e.charCode;
            var ctrlKey = e.ctrlKey || e.metaKey;
            // 是否阻止冒泡
            var isPrevent = false;
            // var isPrevent = true;

            // 响应键盘
            if (ctrlKey && keyCode == 13) {
                // ctrl + enter
                typeof self.fns.ctrlEnter == 'function' && self.fns.ctrlEnter();
                isPrevent = true;
            } else
            if (keyCode == 13) {
                // enter
                typeof self.fns.enter == 'function' && self.fns.enter();
                isPrevent = false;
            } 
            //else
            // if (ctrlKey && keyCode == 86) {
            //     // ctrl + v
            //     typeof self.fns.ctrlV == 'function' && self.fns.ctrlV();
            //     isPrevent = false;
            // }



            //     K.ctrl(document.body, 86, function() {
            //         alert('ctrl + v');
            // });

            // 是否阻止冒泡
            if (isPrevent) {
                e.preventDefault();
                return false;
            }
        });
    }

    // 反馈
    // 通过此方法绑定快捷键回调
    Main.prototype.feedback = function (name, callback) {
        var self = this;
        self.fns[name] = callback;
    }

    window.ShortCut = Main;
}();








